<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GraggBulirschStoerIntegrator (Apache Commons Math 3.6.1 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="GraggBulirschStoerIntegrator (Apache Commons Math 3.6.1 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GraggBulirschStoerIntegrator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GillIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/HighamHall54FieldIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html" target="_top">Frames</a></li>
<li><a href="GraggBulirschStoerIntegrator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.ode.nonstiff</div>
<h2 title="Class GraggBulirschStoerIntegrator" class="title">Class GraggBulirschStoerIntegrator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">org.apache.commons.math3.ode.AbstractIntegrator</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.ode.nonstiff.GraggBulirschStoerIntegrator</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/commons/math3/ode/FirstOrderIntegrator.html" title="interface in org.apache.commons.math3.ode">FirstOrderIntegrator</a>, <a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html" title="interface in org.apache.commons.math3.ode">ODEIntegrator</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">GraggBulirschStoerIntegrator</span>
extends <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">AdaptiveStepsizeIntegrator</a></pre>
<div class="block">This class implements a Gragg-Bulirsch-Stoer integrator for
 Ordinary Differential Equations.

 <p>The Gragg-Bulirsch-Stoer algorithm is one of the most efficient
 ones currently available for smooth problems. It uses Richardson
 extrapolation to estimate what would be the solution if the step
 size could be decreased down to zero.</p>

 <p>
 This method changes both the step size and the order during
 integration, in order to minimize computation cost. It is
 particularly well suited when a very high precision is needed. The
 limit where this method becomes more efficient than high-order
 embedded Runge-Kutta methods like <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/DormandPrince853Integrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><code>Dormand-Prince 8(5,3)</code></a> depends on the problem. Results given in the
 Hairer, Norsett and Wanner book show for example that this limit
 occurs for accuracy around 1e-6 when integrating Saltzam-Lorenz
 equations (the authors note this problem is <i>extremely sensitive
 to the errors in the first integration steps</i>), and around 1e-11
 for a two dimensional celestial mechanics problems with seven
 bodies (pleiades problem, involving quasi-collisions for which
 <i>automatic step size control is essential</i>).
 </p>

 <p>
 This implementation is basically a reimplementation in Java of the
 <a
 href="http://www.unige.ch/math/folks/hairer/prog/nonstiff/odex.f">odex</a>
 fortran code by E. Hairer and G. Wanner. The redistribution policy
 for this code is available <a
 href="http://www.unige.ch/~hairer/prog/licence.txt">here</a>, for
 convenience, it is reproduced below.</p>
 </p>

 <table border="0" width="80%" cellpadding="10" align="center" bgcolor="#E0E0E0">
 <tr><td>Copyright (c) 2004, Ernst Hairer</td></tr>

 <tr><td>Redistribution and use in source and binary forms, with or
 without modification, are permitted provided that the following
 conditions are met:
 <ul>
  <li>Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.</li>
  <li>Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.</li>
 </ul></td></tr>

 <tr><td><strong>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
 BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 FOR A  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</strong></td></tr>
 </table></div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>1.2</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.commons.math3.ode.nonstiff.<a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">AdaptiveStepsizeIntegrator</a></h3>
<code><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#mainSetDimension">mainSetDimension</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#scalAbsoluteTolerance">scalAbsoluteTolerance</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#scalRelativeTolerance">scalRelativeTolerance</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#vecAbsoluteTolerance">vecAbsoluteTolerance</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#vecRelativeTolerance">vecRelativeTolerance</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.commons.math3.ode.AbstractIntegrator">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.commons.math3.ode.<a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">AbstractIntegrator</a></h3>
<code><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#isLastStep">isLastStep</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#resetOccurred">resetOccurred</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#stepHandlers">stepHandlers</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#stepSize">stepSize</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#stepStart">stepStart</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#GraggBulirschStoerIntegrator(double,%20double,%20double[],%20double[])">GraggBulirschStoerIntegrator</a></strong>(double&nbsp;minStep,
                            double&nbsp;maxStep,
                            double[]&nbsp;vecAbsoluteTolerance,
                            double[]&nbsp;vecRelativeTolerance)</code>
<div class="block">Simple constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#GraggBulirschStoerIntegrator(double,%20double,%20double,%20double)">GraggBulirschStoerIntegrator</a></strong>(double&nbsp;minStep,
                            double&nbsp;maxStep,
                            double&nbsp;scalAbsoluteTolerance,
                            double&nbsp;scalRelativeTolerance)</code>
<div class="block">Simple constructor.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#addEventHandler(org.apache.commons.math3.ode.events.EventHandler,%20double,%20double,%20int,%20org.apache.commons.math3.analysis.solvers.UnivariateSolver)">addEventHandler</a></strong>(<a href="../../../../../../org/apache/commons/math3/ode/events/EventHandler.html" title="interface in org.apache.commons.math3.ode.events">EventHandler</a>&nbsp;function,
               double&nbsp;maxCheckInterval,
               double&nbsp;convergence,
               int&nbsp;maxIterationCount,
               <a href="../../../../../../org/apache/commons/math3/analysis/solvers/UnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">UnivariateSolver</a>&nbsp;solver)</code>
<div class="block">Add an event handler to the integrator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#addStepHandler(org.apache.commons.math3.ode.sampling.StepHandler)">addStepHandler</a></strong>(<a href="../../../../../../org/apache/commons/math3/ode/sampling/StepHandler.html" title="interface in org.apache.commons.math3.ode.sampling">StepHandler</a>&nbsp;handler)</code>
<div class="block">Add a step handler to this integrator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#integrate(org.apache.commons.math3.ode.ExpandableStatefulODE,%20double)">integrate</a></strong>(<a href="../../../../../../org/apache/commons/math3/ode/ExpandableStatefulODE.html" title="class in org.apache.commons.math3.ode">ExpandableStatefulODE</a>&nbsp;equations,
         double&nbsp;t)</code>
<div class="block">Integrate a set of differential equations up to the given time.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#setControlFactors(double,%20double,%20double,%20double)">setControlFactors</a></strong>(double&nbsp;control1,
                 double&nbsp;control2,
                 double&nbsp;control3,
                 double&nbsp;control4)</code>
<div class="block">Set the step size control factors.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#setInterpolationControl(boolean,%20int)">setInterpolationControl</a></strong>(boolean&nbsp;useInterpolationErrorForControl,
                       int&nbsp;mudifControlParameter)</code>
<div class="block">Set the interpolation order control parameter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#setOrderControl(int,%20double,%20double)">setOrderControl</a></strong>(int&nbsp;maximalOrder,
               double&nbsp;control1,
               double&nbsp;control2)</code>
<div class="block">Set the order control parameters.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html#setStabilityCheck(boolean,%20int,%20int,%20double)">setStabilityCheck</a></strong>(boolean&nbsp;performStabilityCheck,
                 int&nbsp;maxNumIter,
                 int&nbsp;maxNumChecks,
                 double&nbsp;stepsizeReductionFactor)</code>
<div class="block">Set the stability check controls.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.commons.math3.ode.nonstiff.<a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">AdaptiveStepsizeIntegrator</a></h3>
<code><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#filterStep(double,%20boolean,%20boolean)">filterStep</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#getCurrentStepStart()">getCurrentStepStart</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#getMaxStep()">getMaxStep</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#getMinStep()">getMinStep</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#initializeStep(boolean,%20int,%20double[],%20double,%20double[],%20double[],%20double[],%20double[])">initializeStep</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#resetInternalState()">resetInternalState</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#sanityChecks(org.apache.commons.math3.ode.ExpandableStatefulODE,%20double)">sanityChecks</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#setInitialStepSize(double)">setInitialStepSize</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#setStepSizeControl(double,%20double,%20double[],%20double[])">setStepSizeControl</a>, <a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#setStepSizeControl(double,%20double,%20double,%20double)">setStepSizeControl</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.math3.ode.AbstractIntegrator">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.commons.math3.ode.<a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">AbstractIntegrator</a></h3>
<code><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#acceptStep(org.apache.commons.math3.ode.sampling.AbstractStepInterpolator,%20double[],%20double[],%20double)">acceptStep</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#addEventHandler(org.apache.commons.math3.ode.events.EventHandler,%20double,%20double,%20int)">addEventHandler</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#clearEventHandlers()">clearEventHandlers</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#clearStepHandlers()">clearStepHandlers</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#computeDerivatives(double,%20double[],%20double[])">computeDerivatives</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getCounter()">getCounter</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getCurrentSignedStepsize()">getCurrentSignedStepsize</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getEvaluations()">getEvaluations</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getEvaluationsCounter()">getEvaluationsCounter</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getEventHandlers()">getEventHandlers</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getExpandable()">getExpandable</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getMaxEvaluations()">getMaxEvaluations</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getName()">getName</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getStepHandlers()">getStepHandlers</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#initIntegration(double,%20double[],%20double)">initIntegration</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#integrate(org.apache.commons.math3.ode.FirstOrderDifferentialEquations,%20double,%20double[],%20double,%20double[])">integrate</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#setEquations(org.apache.commons.math3.ode.ExpandableStatefulODE)">setEquations</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#setMaxEvaluations(int)">setMaxEvaluations</a>, <a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#setStateInitialized(boolean)">setStateInitialized</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="GraggBulirschStoerIntegrator(double, double, double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>GraggBulirschStoerIntegrator</h4>
<pre>public&nbsp;GraggBulirschStoerIntegrator(double&nbsp;minStep,
                            double&nbsp;maxStep,
                            double&nbsp;scalAbsoluteTolerance,
                            double&nbsp;scalRelativeTolerance)</pre>
<div class="block">Simple constructor.
 Build a Gragg-Bulirsch-Stoer integrator with the given step
 bounds. All tuning parameters are set to their default
 values. The default step handler does nothing.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>minStep</code> - minimal step (sign is irrelevant, regardless of
 integration direction, forward or backward), the last step can
 be smaller than this</dd><dd><code>maxStep</code> - maximal step (sign is irrelevant, regardless of
 integration direction, forward or backward), the last step can
 be smaller than this</dd><dd><code>scalAbsoluteTolerance</code> - allowed absolute error</dd><dd><code>scalRelativeTolerance</code> - allowed relative error</dd></dl>
</li>
</ul>
<a name="GraggBulirschStoerIntegrator(double, double, double[], double[])">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GraggBulirschStoerIntegrator</h4>
<pre>public&nbsp;GraggBulirschStoerIntegrator(double&nbsp;minStep,
                            double&nbsp;maxStep,
                            double[]&nbsp;vecAbsoluteTolerance,
                            double[]&nbsp;vecRelativeTolerance)</pre>
<div class="block">Simple constructor.
 Build a Gragg-Bulirsch-Stoer integrator with the given step
 bounds. All tuning parameters are set to their default
 values. The default step handler does nothing.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>minStep</code> - minimal step (must be positive even for backward
 integration), the last step can be smaller than this</dd><dd><code>maxStep</code> - maximal step (must be positive even for backward
 integration)</dd><dd><code>vecAbsoluteTolerance</code> - allowed absolute error</dd><dd><code>vecRelativeTolerance</code> - allowed relative error</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="setStabilityCheck(boolean, int, int, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStabilityCheck</h4>
<pre>public&nbsp;void&nbsp;setStabilityCheck(boolean&nbsp;performStabilityCheck,
                     int&nbsp;maxNumIter,
                     int&nbsp;maxNumChecks,
                     double&nbsp;stepsizeReductionFactor)</pre>
<div class="block">Set the stability check controls.
 <p>The stability check is performed on the first few iterations of
 the extrapolation scheme. If this test fails, the step is rejected
 and the stepsize is reduced.</p>
 <p>By default, the test is performed, at most during two
 iterations at each step, and at most once for each of these
 iterations. The default stepsize reduction factor is 0.5.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>performStabilityCheck</code> - if true, stability check will be performed,
     if false, the check will be skipped</dd><dd><code>maxNumIter</code> - maximal number of iterations for which checks are
 performed (the number of iterations is reset to default if negative
 or null)</dd><dd><code>maxNumChecks</code> - maximal number of checks for each iteration
 (the number of checks is reset to default if negative or null)</dd><dd><code>stepsizeReductionFactor</code> - stepsize reduction factor in case of
 failure (the factor is reset to default if lower than 0.0001 or
 greater than 0.9999)</dd></dl>
</li>
</ul>
<a name="setControlFactors(double, double, double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setControlFactors</h4>
<pre>public&nbsp;void&nbsp;setControlFactors(double&nbsp;control1,
                     double&nbsp;control2,
                     double&nbsp;control3,
                     double&nbsp;control4)</pre>
<div class="block">Set the step size control factors.

 <p>The new step size hNew is computed from the old one h by:
 <pre>
 hNew = h * stepControl2 / (err/stepControl1)^(1/(2k+1))
 </pre>
 where err is the scaled error and k the iteration number of the
 extrapolation scheme (counting from 0). The default values are
 0.65 for stepControl1 and 0.94 for stepControl2.</p>
 <p>The step size is subject to the restriction:
 <pre>
 stepControl3^(1/(2k+1))/stepControl4 <= hNew/h <= 1/stepControl3^(1/(2k+1))
 </pre>
 The default values are 0.02 for stepControl3 and 4.0 for
 stepControl4.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>control1</code> - first stepsize control factor (the factor is
 reset to default if lower than 0.0001 or greater than 0.9999)</dd><dd><code>control2</code> - second stepsize control factor (the factor
 is reset to default if lower than 0.0001 or greater than 0.9999)</dd><dd><code>control3</code> - third stepsize control factor (the factor is
 reset to default if lower than 0.0001 or greater than 0.9999)</dd><dd><code>control4</code> - fourth stepsize control factor (the factor
 is reset to default if lower than 1.0001 or greater than 999.9)</dd></dl>
</li>
</ul>
<a name="setOrderControl(int, double, double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOrderControl</h4>
<pre>public&nbsp;void&nbsp;setOrderControl(int&nbsp;maximalOrder,
                   double&nbsp;control1,
                   double&nbsp;control2)</pre>
<div class="block">Set the order control parameters.
 <p>The Gragg-Bulirsch-Stoer method changes both the step size and
 the order during integration, in order to minimize computation
 cost. Each extrapolation step increases the order by 2, so the
 maximal order that will be used is always even, it is twice the
 maximal number of columns in the extrapolation table.</p>
 <pre>
 order is decreased if w(k-1) <= w(k)   * orderControl1
 order is increased if w(k)   <= w(k-1) * orderControl2
 </pre>
 <p>where w is the table of work per unit step for each order
 (number of function calls divided by the step length), and k is
 the current order.</p>
 <p>The default maximal order after construction is 18 (i.e. the
 maximal number of columns is 9). The default values are 0.8 for
 orderControl1 and 0.9 for orderControl2.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maximalOrder</code> - maximal order in the extrapolation table (the
 maximal order is reset to default if order <= 6 or odd)</dd><dd><code>control1</code> - first order control factor (the factor is
 reset to default if lower than 0.0001 or greater than 0.9999)</dd><dd><code>control2</code> - second order control factor (the factor
 is reset to default if lower than 0.0001 or greater than 0.9999)</dd></dl>
</li>
</ul>
<a name="addStepHandler(org.apache.commons.math3.ode.sampling.StepHandler)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addStepHandler</h4>
<pre>public&nbsp;void&nbsp;addStepHandler(<a href="../../../../../../org/apache/commons/math3/ode/sampling/StepHandler.html" title="interface in org.apache.commons.math3.ode.sampling">StepHandler</a>&nbsp;handler)</pre>
<div class="block">Add a step handler to this integrator.
 <p>The handler will be called by the integrator for each accepted
 step.</p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#addStepHandler(org.apache.commons.math3.ode.sampling.StepHandler)">addStepHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html" title="interface in org.apache.commons.math3.ode">ODEIntegrator</a></code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#addStepHandler(org.apache.commons.math3.ode.sampling.StepHandler)">addStepHandler</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">AbstractIntegrator</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>handler</code> - handler for the accepted steps</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#getStepHandlers()"><code>ODEIntegrator.getStepHandlers()</code></a>, 
<a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#clearStepHandlers()"><code>ODEIntegrator.clearStepHandlers()</code></a></dd></dl>
</li>
</ul>
<a name="addEventHandler(org.apache.commons.math3.ode.events.EventHandler, double, double, int, org.apache.commons.math3.analysis.solvers.UnivariateSolver)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addEventHandler</h4>
<pre>public&nbsp;void&nbsp;addEventHandler(<a href="../../../../../../org/apache/commons/math3/ode/events/EventHandler.html" title="interface in org.apache.commons.math3.ode.events">EventHandler</a>&nbsp;function,
                   double&nbsp;maxCheckInterval,
                   double&nbsp;convergence,
                   int&nbsp;maxIterationCount,
                   <a href="../../../../../../org/apache/commons/math3/analysis/solvers/UnivariateSolver.html" title="interface in org.apache.commons.math3.analysis.solvers">UnivariateSolver</a>&nbsp;solver)</pre>
<div class="block">Add an event handler to the integrator.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#addEventHandler(org.apache.commons.math3.ode.events.EventHandler,%20double,%20double,%20int,%20org.apache.commons.math3.analysis.solvers.UnivariateSolver)">addEventHandler</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html" title="interface in org.apache.commons.math3.ode">ODEIntegrator</a></code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#addEventHandler(org.apache.commons.math3.ode.events.EventHandler,%20double,%20double,%20int,%20org.apache.commons.math3.analysis.solvers.UnivariateSolver)">addEventHandler</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html" title="class in org.apache.commons.math3.ode">AbstractIntegrator</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>function</code> - event handler</dd><dd><code>maxCheckInterval</code> - maximal time interval between switching
 function checks (this interval prevents missing sign changes in
 case the integration steps becomes very large)</dd><dd><code>convergence</code> - convergence threshold in the event time search</dd><dd><code>maxIterationCount</code> - upper limit of the iteration count in
 the event time search</dd><dd><code>solver</code> - The root-finding algorithm to use to detect the state
 events.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#getEventHandlers()"><code>ODEIntegrator.getEventHandlers()</code></a>, 
<a href="../../../../../../org/apache/commons/math3/ode/ODEIntegrator.html#clearEventHandlers()"><code>ODEIntegrator.clearEventHandlers()</code></a></dd></dl>
</li>
</ul>
<a name="setInterpolationControl(boolean, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInterpolationControl</h4>
<pre>public&nbsp;void&nbsp;setInterpolationControl(boolean&nbsp;useInterpolationErrorForControl,
                           int&nbsp;mudifControlParameter)</pre>
<div class="block">Set the interpolation order control parameter.
 The interpolation order for dense output is 2k - mudif + 1. The
 default value for mudif is 4 and the interpolation error is used
 in stepsize control by default.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>useInterpolationErrorForControl</code> - if true, interpolation error is used
 for stepsize control</dd><dd><code>mudifControlParameter</code> - interpolation order control parameter (the parameter
 is reset to default if <= 0 or >= 7)</dd></dl>
</li>
</ul>
<a name="integrate(org.apache.commons.math3.ode.ExpandableStatefulODE, double)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>integrate</h4>
<pre>public&nbsp;void&nbsp;integrate(<a href="../../../../../../org/apache/commons/math3/ode/ExpandableStatefulODE.html" title="class in org.apache.commons.math3.ode">ExpandableStatefulODE</a>&nbsp;equations,
             double&nbsp;t)
               throws <a href="../../../../../../org/apache/commons/math3/exception/NumberIsTooSmallException.html" title="class in org.apache.commons.math3.exception">NumberIsTooSmallException</a>,
                      <a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                      <a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a>,
                      <a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></pre>
<div class="block">Integrate a set of differential equations up to the given time.
 <p>This method solves an Initial Value Problem (IVP).</p>
 <p>The set of differential equations is composed of a main set, which
 can be extended by some sets of secondary equations. The set of
 equations must be already set up with initial time and partial states.
 At integration completion, the final time and partial states will be
 available in the same object.</p>
 <p>Since this method stores some internal state variables made
 available in its public interface during integration (<a href="../../../../../../org/apache/commons/math3/ode/AbstractIntegrator.html#getCurrentSignedStepsize()"><code>AbstractIntegrator.getCurrentSignedStepsize()</code></a>), it is <em>not</em> thread-safe.</p></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html#integrate(org.apache.commons.math3.ode.ExpandableStatefulODE,%20double)">integrate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/AdaptiveStepsizeIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff">AdaptiveStepsizeIntegrator</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>equations</code> - complete set of differential equations to integrate</dd><dd><code>t</code> - target time for the integration
 (can be set to a value smaller than <code>t0</code> for backward integration)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NumberIsTooSmallException.html" title="class in org.apache.commons.math3.exception">NumberIsTooSmallException</a></code> - if integration step is too small</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the dimension of the complete state does not
 match the complete equations sets dimension</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if the number of functions evaluations is exceeded</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NoBracketingException.html" title="class in org.apache.commons.math3.exception">NoBracketingException</a></code> - if the location of an event cannot be bracketed</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GraggBulirschStoerIntegrator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/GillIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/ode/nonstiff/HighamHall54FieldIntegrator.html" title="class in org.apache.commons.math3.ode.nonstiff"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/ode/nonstiff/GraggBulirschStoerIntegrator.html" target="_top">Frames</a></li>
<li><a href="GraggBulirschStoerIntegrator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.commons.math3.ode.nonstiff.AdaptiveStepsizeIntegrator">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
